/*************************************************
描述：设定为全选状态
应用：列表页面的全选按钮
作者：Apollo
时间：2009-11-13 
*************************************************/
function CheckAll(obj)
{
	obj = eval(obj);
	for (var i=0; i<obj.elements.length; i++){
	    if (obj.elements[i].type == "checkbox" && obj.elements[i].name == "ID" && obj.elements[i].disabled == false) {
	        if (obj.elements[i].checked == true)
	            obj.elements[i].checked = false;
	        else
	            obj.elements[i].checked = true;
	    }
    }
}
/*************************************************
描述：设定为全选状态
应用：角色授权的全选按钮
作者：Apollo
时间：2009-11-13 
*************************************************/
function CheckAll1(obj)
{
	obj = eval(obj);
	for (var i=0; i<obj.elements.length; i++){
	    if (obj.elements[i].type == "checkbox" && (obj.elements[i].name != "ChkISLock")) {
	        if (obj.elements[i].checked == true)
	            obj.elements[i].checked = false;
	        else
	            obj.elements[i].checked = true;
	    }
    }
}
/*************************************************
描述：获取全选CheckBox的值
作者：Apollo
时间：2009-11-13 
*************************************************/
function GetCheckAll(obj) {
    obj = eval(obj);
    var str_ids = "";
    for (var i = 0; i < obj.elements.length; i++) {
        if (obj.elements[i].type == "checkbox" && obj.elements[i].checked == true && (obj.elements[i].name != "IS.CheckBox") && (obj.elements[i].name != "ChkISLock")) {
            str_ids += obj.elements[i].value + ",";
        }
    }
    return str_ids.substring(0, str_ids.length - 1);
}
/*************************************************
描述：父类选择之后自动全选\反选子类
作者：Apollo
时间：2009-11-13 
*************************************************/
function CheckSelect(obj,name)
{
	obj = eval(obj);
	var _length=name.length+1;
	for (var i=0; i<obj.elements.length; i++){
		if (obj.elements[i].name.substring(0,_length)==name+"_"){
			if ($("#"+name).attr("checked")==true){
				obj.elements[i].checked = true;
			}
			else{
				obj.elements[i].checked = false;
			}
		}
	}
}
/*************************************************
描述：子类选择之后自动勾选父类
作者：Apollo
时间：2009-11-13 
*************************************************/
function CheckSubSelect(obj,name)
{
	obj = eval(obj);
	var _length=name.length+1;
	var flg=false;
	for (var i=0; i<obj.elements.length; i++){
		if (obj.elements[i].name.substring(0,_length)==name+"_"){
			if(obj.elements[i].checked==true){
				flg=true;
				break;
			}
		}
	}
	if (flg){
		$("#"+name).attr("checked",true);
	}
	else{
		$("#"+name).attr("checked",false);
	}
}
/*************************************************
描述：选择一项从A列表到B列表
作者：Apollo
时间：2009-11-15 
*************************************************/
function SelectedOptions(e1, e2){
	for(var i=0;i<e1.options.length;i++){
		if(e1.options[i].selected){
			var e = e1.options[i];
			e2.options.add(new Option(e.text, e.value));
			e1.remove(i);
			i=i-1
		}
	}
}
/*************************************************
描述：选择全部A列表到B列表
作者：Apollo
时间：2009-11-15 
*************************************************/
function AllSelectedOptions(e1, e2){
	for(var i=0;i<e1.options.length;i++){
		var e = e1.options[i];
		e2.options.add(new Option(e.text, e.value));
		e1.remove(i);
		i=i-1
	}
}
/*************************************************
描述：获取列表框的值
作者：Apollo
时间：2009-11-15 
*************************************************/
function GetSelectValue(e) {
    var s_id = "";
    for (var i = 0; i < e.options.length; i++) {
        s_id += e.options[i].value + ",";
    }
    return s_id.substring(0, s_id.length - 1);
}
/*************************************************
描述：创建提示图层
作者：Apollo
时间：2009-11-17 
*************************************************/
function ShowTip(str) {
    var tmp_div = document.createElement("DIV");
    if (tmp_div) {
        tmp_div.className = "div_tip";
        tmp_div.name = "div_tip";
        tmp_div.id = "div_tip";
        str = (str) ? str : "操作正在进行中，请稍候...";
        tmp_div.innerHTML += "<span class=\"tip_image\">&nbsp;</span><span class=\"tip_content\">" + str + "</span>";
        document.body.appendChild(tmp_div);
    }
}
/*************************************************
描述：关闭提示图层
作者：Apollo
时间：2009-11-17 
*************************************************/
function ClearTip() {
    var tmp_div = document.getElementById("div_tip");
    if (tmp_div)
        document.body.removeChild(tmp_div);
}
/*************************************************
描述：提交表单之前出现提示图层
作者：Apollo
时间：2009-11-17 
*************************************************/
function DoSubmit(obj) {
    ShowTip();
    obj.submit();
}
/*************************************************
描述：搜索表单提交
作者：Apollo
时间：2009-11-18
*************************************************/
function DoSearch(url,element,value)
{
	ShowTip();
	if (url=='')
	{
		url+=location.protocol;
		url+="//";
		url+=location.hostname;
		url+=location.pathname;
	}
	else
	{
		url=window.location.href;	
	}
	window.location.href=url+'?'+element+'='+escape(value);
}
/*************************************************
描述：Ajax方法提交参数
作者：Apollo
时间：2009-12-01
*************************************************/
function DoPost(Url,ID,action) {
    $.ajax({
        type: "post",
        dataType: "json",
        data: "ID=" + ID,
        url: Url+"?Action=" + action + "&Time=" + (new Date().getTime()),
        error: function() {
            ShowTip("服务运行异常，请联系系统管理员！");
            setTimeout('window.location.reload()', 1000);
        },
        success: function(d) {
            ShowTip(d.returnval);
            setTimeout('window.location.reload()', 1000);
        }
    });
}
/*************************************************
描述：显示浮动操作层,主接口
作者：Apollo
时间：2009-11-20 
*************************************************/
function showTBInterface(url,title,path){
	title = title || "内容管理系统";
	var obj = getTBPath(path);
	var groupflag = getTBConfig("outGroupFlag",path);
	obj.TB_show(title, url, groupflag , obj);
}
/*************************************************
描述：显示浮动操作层
作者：Apollo
时间：2009-11-20 
*************************************************/
function showTB(url,width,height,title,path){
	str = (url.indexOf("?") >= 0) ? "&" : "?";
	showTBInterface(url+str+"TB_iframe=true&height="+height+"&width="+width,title,path);
}
/*************************************************          
描述：显示浮动图片层
作者：Apollo
时间：2009-11-20 
*************************************************/
function showTBPic(url,title,path){
	showTBInterface(url,title,path);
}
/*************************************************
描述：显示浮动动画层
作者：Apollo
时间：2009-11-20 
*************************************************/
function showTBSwf(url,width,height,title,path){
	str = (url.indexOf("?") >= 0) ? "&" : "?";
	showTBInterface(url+str+"TB_flash=true&height="+height+"&width="+width,title,path);
}
/*************************************************
描述：显示浮动操作层
作者：Apollo
时间：2009-11-20 
*************************************************/
function showTBMedia(url,width,height,title,path){
	str = (url.indexOf("?") >= 0) ? "&" : "?";
	showTBInterface(url+str+"TB_media=true&height="+height+"&width="+width,title,path);
}
/*************************************************
描述：显示浮动分页组
作者：Apollo
时间：2009-11-20 
*************************************************/
function showTBGroup(title,url,ary,path){
	//打开组开关
	setTBConfig("outGroupFlag",true,path);
	//设置自定义组数据
	setTBConfig("outGroupAry",ary,path);
	//显示接口
	showTBInterface(url,title,path);
}
/*************************************************
描述：清除浮动操作层
作者：Apollo
返回值：path     显示的路径
	   retval   返回值
时间：2009-11-20
*************************************************/
function removeTB(path){
	if( getTBConfig("attachEventFlag",path) ){
		doTBAttachEvent(path);
	}
	var obj = getTBPath(path);
	obj.TB_remove();
}
/*************************************************
描述：返回属性值
作者：Apollo
时间：2009-11-20 
*************************************************/
function getTBConfig(name,path){
	var obj = getTBPath(path);
	return obj.TB_getConfig(name);
}
/*************************************************
描述：设置属性值
作者：Apollo
返回值：path	    显示的路径
  	   retval	返回值
时间：2009-11-20 
*************************************************/
function setTBConfig( name, value, path ){
	//当有附加事件时，自动打开附加事件开关
	if( name == "attachEvent" && value )
		setTBConfig("attachEventFlag", true, path);
	//当有并列事件时，自动打开并列事件开关
	if( name == "inEvent" && value )
		setTBConfig("inEventFlag", true, path);
	var obj = getTBPath(path);
	obj.TB_setConfig(name,value);
}
/*************************************************
描述：做事件
作者：Apollo
返回值：path	    显示的路径
  	   retval	返回值
时间：2009-11-20 
*************************************************/
function doTBAttachEvent(path){
	var obj = getTBPath(path);
	obj.TB_doEvent();
}
/*************************************************
描述：获取显示默认框架对象
作者：Apollo
返回值：path	    显示的路径
  	   retval	返回值
时间：2009-11-20
*************************************************/
function getTBPath(path){
	path = path || "top";
	var obj = eval(path);
	if(!obj){
		alert("对话框框架对象为空，请刷新或者关闭浏览器重新登录。");
		return false;
	}
	return obj;
}
/*************************************************
描述：鼠标拖动效果部分代码开始
作者：Apollo
时间：2009-11-20
*************************************************/
var drag_x0=0,drag_y0=0,drag_x1=0,drag_y1=0;
var moveable=false;
//开始拖动;
function startDrag(obj){
	//锁定标题栏;
	obj.setCapture();
	//定义对象;
	var win = obj.parentNode;
	//记录鼠标和层位置;
	drag_x0 = event.clientX;
	drag_y0 = event.clientY;
	drag_x1 = parseInt(win.style.left);
	drag_y1 = parseInt(win.style.top);
	moveable = true;
}
//拖动;
function drag(obj){
	var win = obj.parentNode;
	if(moveable){
		win.style.left = drag_x1 + event.clientX - drag_x0;
		win.style.top = drag_y1 + event.clientY - drag_y0;
	}
}
//停止拖动;
function stopDrag(obj){
	//放开标题栏;
	var win = obj.parentNode;
	var t = win.style.top;
	t = parseInt(t.substring(0,t.length - 2));
	if( t < 0 ){
		win.style.top = 5;
	}
	if( top ){
		var h = parseInt(top.document.body.offsetHeight);
	}else{
		var h = parseInt(top.document.body.offsetHeight);
	}
	if( t >= h ){
		win.style.top = 5;
	}
	obj.releaseCapture();
	moveable = false;
}
/*************************************************
描述：鼠标拖动效果部分代码结束
作者：Apollo
时间：2009-11-20
*************************************************/

/*************************************************
描述：高级检索
作者：Apollo
时间：2010-02-25
*************************************************/
function showObj(id, flag) {
    var obj = eval("document.getElementById(\"" + id + "\")");
    var showflag;
    if (flag) {
        showflag = "block";
    }
    else {
        showflag = "none";
    }
    obj.style.display = showflag;
}
/*************************************************
描述：高级检索
作者：Apollo
时间：2010-02-25
*************************************************/
function showQueDetail(flag) {
    if (flag) {
        var obj = eval("document.getElementById(\"div_quedetail\")");
        obj.style.right = "8px";
        obj.style.top = "75px";
    }
    showObj("div_quedetail", flag);
}